SIPp常用脚本之二:UAS

时间:2024-12-26 17:35:20

看名字就能猜出来,这是作为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 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:
]]>
</send>
<send retrans="">
<![CDATA[
SIP/2.0 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=
o=user1 IN IP[local_ip_type] [local_ip]
s=-
c=IN IP[media_ip_type] [media_ip]
t=
m=audio [media_port] RTP/AVP
a=rtpmap: PCMU/
]]>
</send>
<recv request="ACK" optional="true" rtd="true" crlf="true">
</recv>
<recv request="BYE">
</recv>
<send>
<![CDATA[
SIP/2.0 OK
[last_Via:]
[last_From:]
[last_To:]
[last_Call-ID:]
[last_CSeq:]
Contact: <sip:[local_ip]:[local_port];transport=[transport]>
Content-Length:
]]>
</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  业务服务器地址:端口 -t tn -max_socket 

2. 以UDP方式启动服务

./sipp -sf uas.xml -i 本地服务器地址 -p 本地服务器端口 -m  业务服务器地址:端口

三、一个小说明

-m 500的意思是,接受500条起始SIP消息后,自动终止运行,给出统计报告。