# 国网B协议模拟测试
本文介绍如何使用 SIPp 工具进行国网 B 协议的 SIP 信令模拟测试,包括语音对讲、语音广播、回放控制等功能的测试脚本。
# SIPp 简介
SIPp 是一个开源的 SIP 协议测试工具,广泛应用于 VoIP 系统和视频监控领域的协议测试。
# 主要功能
- 压力测试:批量 REGISTER、INVITE 等信令测试
- 功能测试:模拟 UA(User Agent)或 Server
- 脚本化测试:通过 XML 文件定义 SIP 流程
- 媒体模拟:支持 RTP 媒体流模拟
# 应用场景
- VoIP 系统压力测试
- IP PBX、SBC 设备测试
- GB28181 标准协议测试(REGISTER、INVITE、BYE)
- SIP 设备联调测试
- 国网 B 协议信令模拟
# 安装 SIPp
# Linux/MacOS 安装
# 下载源码
wget https://github.com/SIPp/sipp/releases/download/v3.7.2/sipp-3.7.2.tar.gz
tar -xzf sipp-3.7.2.tar.gz
cd sipp-3.7.2
# 编译安装
cmake . -DUSE_SCTP=OFF -DUSE_GSL=OFF
make all
# 验证安装
./sipp -v
# Windows 下载
- 官方发布页:https://github.com/SIPp/sipp/releases
- 参考文档:https://sipp.sourceforge.net/doc/reference.html
# 国网 B 协议报文分析
# 上级平台语音对讲 INVITE
以下是通过 Wireshark 抓取的国网 B 协议语音对讲 INVITE 报文示例:
INVITE sip:267710000101060000@192.168.0.194:5060 SIP/2.0
Via: SIP/2.0/TCP 192.168.0.192:5061;rport;branch=z9hG4bK773887021
From: <sip:267710000101060000@192.168.0.192:5061>;tag=11102188937
To: <sip:267710000101060000@192.168.0.194:5060>
Call-ID: 48367938@192.168.0.192
CSeq: 1 INVITE
Contact: <sip:267710000101060000@192.168.0.192:5061>
Max-Forwards: 70
User-Agent: hikvision
Expires: 120
Content-Type: application/SDP
Content-Length: 179
v=0
o=- 0 0 IN IP4 192.168.0.192
s=Talk
c=IN IP4 192.168.0.192
m=audio 19873 RTP/AVP/TCP 8
y=1190078655
a=rtpmap:8 PCMA/8000
a=sendrecv
a=setup:passive
a=connection:new
# 下级平台回复 100 Trying
SIP/2.0 100 Trying
CSeq: 1 INVITE
Call-ID: 48367938@192.168.0.192
From: <sip:267710000101060000@192.168.0.192:5061>;tag=11102188937
To: <sip:267710000101060000@192.168.0.194:5060>;tag=1764899057532
Via: SIP/2.0/TCP 192.168.0.192:5061;rport=5061;branch=z9hG4bK773887021;received=192.168.0.192
User-Agent: WVP-Pro
Content-Length: 0
# 下级平台回复 200 OK
SIP/2.0 200 OK
CSeq: 1 INVITE
Call-ID: 48367938@192.168.0.192
From: <sip:267710000101060000@192.168.0.192:5061>;tag=11102188937
To: <sip:267710000101060000@192.168.0.194:5060>;tag=1764899057532
Via: SIP/2.0/TCP 192.168.0.192:5061;rport=5061;branch=z9hG4bK773887021;received=192.168.0.192
Contact: <sip:267710000101060000@192.168.0.194:5060>
Content-Type: APPLICATION/SDP
User-Agent: WVP-Pro
Content-Length: 206
v=0
o=267710000003010038 0 0 IN IP4 192.168.0.194
s=Talk
c=IN IP4 192.168.0.194
t=0 0
m=audio 58253 TCP/RTP/AVP 8
a=setup:active
a=connection:new
a=sendrecv
a=rtpmap:8 PCMA/8000
y=1190078655
# SIPp 测试脚本
# 语音对讲脚本
# Invite_Talk.xml - UDP 语音对讲
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Invite_Talk">
<send>
<![CDATA[
INVITE sip:267710000003010039@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport=[local_port];branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010039@[remote_ip]:5060>
Call-ID: [call_id]
CSeq: 20 INVITE
Contact: <sip:267710000004020001@[local_ip]:[local_port]>
Content-Type: application/SDP
Max-Forwards: 70
User-Agent: eXosip/5.0.0
Content-Length: [len]
v=0
o=- 0 0 IN IP4 [local_ip]
s=Talk
c=IN IP4 [local_ip]
t=0 0
m=audio [media_port] RTP/AVP 8
y=0
a=rtpmap:8 PCMA/8000
a=sendrecv
]]>
</send>
<recv response="100" optional="true" />
<recv response="200" crlf="true">
<ereg regexp=";tag=([^\r\n;]+)" search_in="msg" assign_to="remote_tag"/>
</recv>
<send>
<![CDATA[
ACK sip:267710000003010039@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010039@[remote_ip]:5060>;tag=1
Call-ID: [call_id]
CSeq: 20 ACK
Content-Length: 0
]]>
</send>
</scenario>
# Invite_Talk_TCP.xml - TCP 语音对讲
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Invite_Talk_TCP">
<send>
<![CDATA[
INVITE sip:267710000003010038@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/TCP [local_ip]:[local_port];rport=[local_port];branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010038@[remote_ip]:5060>
Call-ID: [call_id]
CSeq: 20 INVITE
Contact: <sip:267710000004020001@[local_ip]:[local_port];transport=TCP>
Content-Type: application/SDP
Max-Forwards: 70
User-Agent: eXosip/5.0.0
Content-Length: [len]
v=0
o=- 0 0 IN IP4 [local_ip]
s=Talk
c=IN IP4 [local_ip]
t=0 0
m=audio [media_port] RTP/AVP/TCP 8
y=3527476652
a=rtpmap:8 PCMA/8000
a=setup:passive
a=connection:new
a=sendrecv
]]>
</send>
<recv response="100" optional="true" />
<recv response="200" crlf="true">
<ereg regexp=";tag=([^\r\n;]+)" search_in="msg" assign_to="remote_tag"/>
</recv>
<send>
<![CDATA[
ACK sip:267710000003010038@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/TCP [local_ip]:[local_port];branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010038@[remote_ip]:5060>;tag=1
Call-ID: [call_id]
CSeq: 20 ACK
Content-Length: 0
]]>
</send>
</scenario>
# Invite_Talk_Bye.xml - 结束语音对讲
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-INVITE">
<send>
<![CDATA[
BYE sip:[service]@[remote_ip]:5060 SIP/2.0
Max-Forwards: 70
Via: SIP/2.0/UDP [local_ip]:[local_port];rport=[local_port];branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010039@[remote_ip]:5060>
Call-ID: 1-2295433@192.168.0.249
CSeq: 1 BYE
User-Agent: GN-B-SIP-Client/1.0
Content-Length: 0
]]>
</send>
<recv request="BYE" />
</scenario>
# 语音广播脚本
# Invite_Broadcast.xml
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Invite_Talk">
<send>
<![CDATA[
INVITE sip:267710000003010039@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport=[local_port];branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010039@[remote_ip]:5060>
Call-ID: [call_id]
CSeq: 20 INVITE
Contact: <sip:267710000004020001@[local_ip]:[local_port]>
Content-Type: application/SDP
Max-Forwards: 70
User-Agent: eXosip/5.0.0
Content-Length: [len]
v=0
o=- 0 0 IN IP4 [local_ip]
s=Broadcast
c=IN IP4 [local_ip]
t=0 0
m=audio [media_port] RTP/AVP 8
y=0
a=rtpmap:8 PCMA/8000
a=sendonly
]]>
</send>
<recv response="100" optional="true" />
<recv response="200" crlf="true">
<ereg regexp=";tag=([^\r\n;]+)" search_in="msg" assign_to="remote_tag"/>
</recv>
<send>
<![CDATA[
ACK sip:267710000003010039@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010039@[remote_ip]:5060>;tag=1
Call-ID: [call_id]
CSeq: 20 ACK
Content-Length: 0
]]>
</send>
</scenario>
# Invite_Broadcast_Bye.xml
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-INVITE">
<send>
<![CDATA[
BYE sip:[service]@[remote_ip]:5060 SIP/2.0
Max-Forwards: 70
Via: SIP/2.0/UDP [local_ip]:[local_port];rport=[local_port];branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010039@[remote_ip]:5060>
Call-ID: 1-2288302@192.168.0.249
CSeq: 1 BYE
User-Agent: GN-B-SIP-Client/1.0
Content-Length: 0
]]>
</send>
<recv request="BYE" />
</scenario>
# 回放控制脚本
# Playback_INVITE.xml - 回放邀请
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Playback-INVITE">
<send>
<![CDATA[
INVITE sip:267710000003010038@[remote_ip]:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TCP [local_ip]:[local_port];rport;branch=z9hG4bK[call_number]
From: "267710000000000000" <sip:267710000000000000@[local_ip]:[local_port]>;tag=[call_number]
To: "267710000003010038" <sip:267710000003010038@[remote_ip]:5060>
Call-ID: [call_id]
CSeq: 1 INVITE
Contact: "267710000000000000" <sip:267710000000000000@[local_ip]:[local_port]>
Max-Forwards: 70
User-Agent: WVP-Pro
Content-Type: application/sdp
Content-Length: [len]
v=0
o=- 0 0 IN IP4 192.168.0.194
s=Playback
u=rtsp://192.168.0.194:8556/cam/playback/1764642254_1764642267
c=IN IP4 192.168.0.194
m=video 50251 RTP/AVP/TCP 100
y=123456
a=setup:passive
a=connection:new
a=rtpmap:100 H264/90000
a=fmtp:100 CIF=1;4CIF=1;F=1;K=1
a=recvonly
]]>
</send>
<recv response="100" optional="true" />
<recv response="200" crlf="true">
<ereg regexp=";tag=([^\r\n;]+)" search_in="msg" assign_to="remote_tag"/>
</recv>
<send>
<![CDATA[
ACK sip:267710000003010038@[remote_ip]:5060;transport=tcp SIP/2.0
Via: SIP/2.0/TCP [local_ip]:[local_port];branch=z9hG4bK[call_number]
From: "267710000000000000" <sip:267710000000000000@[local_ip]:[local_port]>;tag=[call_number]
To: "267710000003010038" <sip:267710000003010038@[remote_ip]:5060>;tag=[call_number]
Call-ID: [call_id]
CSeq: 1 ACK
Content-Length: 0
]]>
</send>
</scenario>
# Playback_PAUSE.xml - 回放暂停
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Playback-PAUSE">
<send>
<![CDATA[
MESSAGE sip:267710000003010038@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport;branch=z9hG4bK[call_number]
From: <sip:267710000000000000@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010038@[remote_ip]:5060>
Call-ID: 416416916011
CSeq: 3 MESSAGE
Contact: <sip:267710000000000000@[local_ip]:[local_port]>
Content-Type: application/rtsp
Max-Forwards: 70
User-Agent: WVP-Pro
Content-Length: [len]
PAUSE RTSP/1.0
Session: 6520174847
CSeq: 36
]]>
</send>
<recv response="200" optional="true" />
</scenario>
# Playback_PAUSE_START.xml - 回放恢复
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Playback-PAUSE">
<send>
<![CDATA[
MESSAGE sip:267710000003010038@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport;branch=z9hG4bK[call_number]
From: <sip:267710000000000000@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010038@[remote_ip]:5060>
Call-ID: 4164169160
CSeq: 3 MESSAGE
Contact: <sip:267710000000000000@[local_ip]:[local_port]>
Content-Type: application/rtsp
Max-Forwards: 70
User-Agent: WVP-Pro
Content-Length: [len]
PLAY RTSP/1.0
Session: 6520174847
CSeq: 36
]]>
</send>
<recv response="200" optional="true" />
</scenario>
# Playback_PLAY.xml - 回放跳转
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Playback-PLAY">
<send>
<![CDATA[
MESSAGE sip:267710000003010038@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport;branch=z9hG4bK[call_number]
From: <sip:267710000000000000@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010038@[remote_ip]:5060>
Call-ID: 5954901961
CSeq: 2 MESSAGE
Contact: <sip:267710000000000000@[local_ip]:[local_port]>
Content-Type: application/rtsp
Max-Forwards: 70
User-Agent: WVP-Pro
Content-Length: [len]
PLAY RTSP/1.0
Session: 5365205366
CSeq: 2
Range: ntp=10-20
]]>
</send>
<recv response="200" optional="true" />
</scenario>
# Playback_SCALE.xml - 回放倍速
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Playback-PLAY">
<send>
<![CDATA[
MESSAGE sip:267710000003010038@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport;branch=z9hG4bK[call_number]
From: <sip:267710000000000000@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000003010038@[remote_ip]:5060>
Call-ID: 1298294522
CSeq: 2 MESSAGE
Contact: <sip:267710000000000000@[local_ip]:[local_port]>
Content-Type: application/rtsp
Max-Forwards: 70
User-Agent: WVP-Pro
Content-Length: [len]
PLAY RTSP/1.0
Session: 5633509593
CSeq: 2
Scale: 4.00
]]>
</send>
<recv response="200" optional="true" />
</scenario>
# 设备控制脚本
# Camera_Snap.xml - 抓拍
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Camera_Snap">
<send>
<![CDATA[
MESSAGE sip:267710000101060000@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport;branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000101060000@[remote_ip]:5060>
Call-ID: [call_id]
CSeq: 1 MESSAGE
Content-Type: application/xml
Max-Forwards: 70
User-Agent: eXosip/5.0.0
Content-Length: [len]
<?xml version="1.0" encoding="UTF-8"?>
<SIP_XML EventType="Camera_Snap">
<Item Code="267710000003010038" PicServer="http://192.168.0.192:18080/deviceUpload/picture/267710000101060000/2000489894786174977" SnapType="0" Range="00000000" Interval="0" />
</SIP_XML>
]]>
</send>
<recv response="200" optional="true" />
</scenario>
# 订阅与查询脚本
# Subscribe_Status.xml - 订阅状态
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Subscribe_Status">
<send>
<![CDATA[
SUBSCRIBE sip:267710000101060000@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/TCP [local_ip]:[local_port];rport=[local_port];branch=z9hG4bK[call_number];transport=TCP
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000101060000@[remote_ip]:5060>
Call-ID: [call_id]
CSeq: 20 SUBSCRIBE
Contact: <sip:267710000004020001@[local_ip]:[local_port];transport=TCP>
Content-Type: application/xml
Max-Forwards: 70
User-Agent: eXosip/5.0.0
Expires: 3600
Event: presence
Content-Length: [len]
<?xml version="1.0" encoding="UTF-8"?>
<SIP_XML EventType="Subscribe_Status">
<Item Code="267710000101060000" />
</SIP_XML>
]]>
</send>
<recv response="200" optional="true" />
</scenario>
# Subscribe_Alarm.xml - 订阅告警
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Subscribe_Alarm">
<send>
<![CDATA[
SUBSCRIBE sip:267710000101060000@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport=[local_port];branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000101060000@[remote_ip]:5060>
Call-ID: [call_id]
CSeq: 20 SUBSCRIBE
Contact: <sip:267710000004020001@[local_ip]:[local_port]>
Content-Type: application/xml
Max-Forwards: 70
User-Agent: eXosip/5.0.0
Expires: 3600
Event: alarm
Content-Length: [len]
<?xml version="1.0" encoding="UTF-8"?>
<SIP_XML EventType="Subscribe_Alarm">
<Item Code="267710000101060000" Type="-1" />
</SIP_XML>
]]>
</send>
<recv response="200" optional="true" />
</scenario>
# Request_History_Alarm.xml - 查询历史告警
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Request_History_Alarm">
<send>
<![CDATA[
MESSAGE sip:267710000101060000@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport;branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000101060000@[remote_ip]:5060>
Call-ID: [call_id]
CSeq: 1 MESSAGE
Contact: <sip:267710000004020001@[local_ip]:[local_port]>
Content-Type: application/xml
Max-Forwards: 70
User-Agent: eXosip/5.0.0
Content-Length: [len]
<?xml version="1.0" encoding="UTF-8"?>
<SIP_XML EventType="Request_History_Alarm">
<Item Code="267710000003010038" Type="-1" Level="1"
UserCode="267710000004020001"
BeginTime="2025-12-11T14:23:11Z"
EndTime="2025-12-13T14:23:11Z"
FromIndex="1" ToIndex="10" />
</SIP_XML>
]]>
</send>
<recv response="200" optional="true" />
</scenario>
# Request_History_Video.xml - 查询历史视频
<?xml version="1.0" encoding="UTF-8"?>
<scenario name="GW-B-Request_History_Video">
<send>
<![CDATA[
MESSAGE sip:267710000101060000@[remote_ip]:5060 SIP/2.0
Via: SIP/2.0/UDP [local_ip]:[local_port];rport;branch=z9hG4bK[call_number]
From: <sip:267710000004020001@[local_ip]:[local_port]>;tag=[call_number]
To: <sip:267710000101060000@[remote_ip]:5060>
Call-ID: [call_id]
CSeq: 1 MESSAGE
Contact: <sip:267710000004020001@[local_ip]:[local_port]>
Content-Type: application/xml
Max-Forwards: 70
User-Agent: eXosip/5.0.0
Content-Length: [len]
<?xml version="1.0" encoding="UTF-8"?>
<SIP_XML EventType="Request_History_Video">
<Item Code="267710000003010038" Type="-1" UserCode="267710000004020001" BeginTime="2025-12-11T14:23:51Z" EndTime="2025-12-13T14:23:51Z" FromIndex="1" ToIndex="10" />
</SIP_XML>
]]>
</send>
<recv response="200" optional="true" />
</scenario>
# SIPp 命令使用
# 基本命令格式
sipp [remote_host]:[remote_port] -sf [script_file] -i [local_ip] -p [local_port] -m [number_of_calls]
# 语音对讲测试
# UDP 语音对讲
sipp 192.168.0.194:5060 -sf Invite_Talk.xml -i 192.168.0.249 -p 5061 -m 1
# TCP 语音对讲
sipp 192.168.0.194:5060 -sf Invite_Talk_TCP.xml -i 192.168.0.249 -p 5061 -m 1
# 结束语音对讲
sipp 192.168.0.194:5060 -sf Invite_Talk_Bye.xml -i 192.168.0.249 -p 5061 -m 1
# 语音广播测试
# 语音广播
sipp 192.168.0.194:5060 -sf Invite_Broadcast.xml -i 192.168.0.249 -p 5061 -m 1
# 结束语音广播
sipp 192.168.0.194:5060 -sf Invite_Broadcast_Bye.xml -i 192.168.0.249 -p 5061 -m 1
# 回放控制测试
# 回放邀请
sipp 192.168.0.194:5060 -sf Playback_INVITE.xml -i 192.168.0.249 -p 5061 -m 1
# 回放暂停
sipp 192.168.0.194:5060 -sf Playback_PAUSE.xml -i 192.168.0.249 -p 5061 -m 1
# 回放恢复
sipp 192.168.0.194:5060 -sf Playback_PAUSE_START.xml -i 192.168.0.249 -p 5061 -m 1
# 回放跳转
sipp 192.168.0.194:5060 -sf Playback_PLAY.xml -i 192.168.0.249 -p 5061 -m 1
# 回放倍速
sipp 192.168.0.194:5060 -sf Playback_SCALE.xml -i 192.168.0.249 -p 5061 -m 1
# 其他功能测试
# 抓拍
sipp 192.168.0.194:5060 -sf Camera_Snap.xml -i 192.168.0.249 -p 5061 -m 1
# 订阅状态
sipp 192.168.0.194:5060 -sf Subscribe_Status.xml -i 192.168.0.249 -p 5061 -m 1
# 订阅告警
sipp 192.168.0.194:5060 -sf Subscribe_Alarm.xml -i 192.168.0.249 -p 5061 -m 1
# 查询历史告警
sipp 192.168.0.194:5060 -sf Request_History_Alarm.xml -i 192.168.0.249 -p 5061 -m 1
# 查询历史视频
sipp 192.168.0.194:5060 -sf Request_History_Video.xml -i 192.168.0.249 -p 5061 -m 1
# FFmpeg 音频推送
# 推送 PCMA 音频
# 使用 FFmpeg 推送音频到 RTP 端口
ffmpeg -re -i linkmicinvite.wav -ac 1 -ar 8000 -c:a pcm_alaw -f rtp -payload_type 8 rtp://192.168.0.194:50144
# Python 脚本推送
# TCP 语音广播
python mock_broadcast_upper.py --sip-host 192.168.1.194 --sip-port 5060 --local-ip 192.168.1.194 --sip-local-port 0 --rtp-port 8000 --wav linkmicinvite_8k_pcm16_mono.wav
# UDP 语音广播
python mock_broadcast_upper_udp.py --sip-host 192.168.0.194 --sip-port 5060 --local-ip 192.168.0.194 --rtp-port 8000 --wav linkmicinvite_8k_pcm16_mono.wav
# RTSP 音频推送
python push_rtsp_audio_tcp.py --rtsp rtsp://192.168.0.194:554/rtp/34020000001320000002_34020000001320000021 --host 192.168.0.194 --port 19873
# 注意事项
- ID 修改:使用脚本时需要根据实际情况修改设备 ID、用户 ID 等参数
- Call-ID 修改:回放控制类脚本需要修改对应的 Call-ID 和 Session ID
- IP 地址:根据实际网络环境修改
remote_ip和local_ip - 端口配置:确保使用的端口未被占用
- 网络连接:确保测试机器与目标设备网络连通
# 参考资源
- SIPp 官方文档:https://sipp.sourceforge.net/doc/reference.html
- SIPp GitHub:https://github.com/SIPp/sipp
- GB28181 标准:《公共安全视频监控联网系统信息传输、交换、控制技术要求》