现在有两台装有SIPp的服务器,其中192.168.1.62的服务器为UAC,192.168.1.63的为UAS,现在通过这两台服务器模拟通话,给出详细的操作步骤

以下是使用SIPp在两台服务器上模拟SIP通话的详细操作步骤:


1. 环境准备

  • 确认两台服务器已安装SIPp:
    sipp -v
    
  • 确保网络互通(互相可ping通):
    ping 192.168.1.62  # 在192.168.1.63上执行
    ping 192.168.1.63  # 在192.168.1.62上执行
    
  • 关闭防火墙或开放5060端口(SIP默认端口):
    sudo ufw allow 5060/udp
    sudo ufw allow 5060/tcp
    

2. 在UAS服务器(192.168.1.63)启动被叫服务

  • 启动SIPp作为UAS(接收呼叫并响应):
    sipp -sn uas -p 5060 -i 192.168.1.63
    
    • -sn uas:使用内置的UAS场景。
    • -p 5060:监听5060端口。
    • -i 192.168.1.63:绑定到本机IP。

3. 在UAC服务器(192.168.1.62)发起主叫请求

  • 启动SIPp作为UAC(发起呼叫):
    sipp -sn uac 192.168.1.63:5060 -i 192.168.1.62 -m 1
    
    • -sn uac:使用内置的UAC场景。
    • 192.168.1.63:5060:目标UAS的IP和端口。
    • -i 192.168.1.62:绑定到本机IP。
    • -m 1:发送1次呼叫(测试单次通话)。

4. 观察测试结果

  • UAS服务器日志
    [UAS] Received INVITE, sending 200 OK...
    [UAS] Received ACK, call established.
    
  • UAC服务器日志
    [UAC] Sending INVITE...
    [UAC] Received 200 OK, sending ACK...
    

5. 高级场景(自定义XML文件)

如果需要自定义呼叫流程,可创建场景XML文件:

UAS端(uas_scenario.xml)
<scenario>
  <recv request="INVITE"/>
  <send>
    <![CDATA[
      SIP/2.0 200 OK
      [Last-Header: value]
      Contact: <sip:192.168.1.63:5060>
    ]]>
  </send>
  <recv request="ACK"/>
</scenario>

启动命令:

sipp -sf uas_scenario.xml -p 5060 -i 192.168.1.63
UAC端(uac_scenario.xml)
<scenario>
  <send retrans="500">
    <![CDATA[
      INVITE sip:user@192.168.1.63 SIP/2.0
      Via: SIP/2.0/[transport] [local_ip]:[local_port]
      From: sip:test@192.168.1.62;tag=[call_number]
      To: sip:user@192.168.1.63
      Call-ID: [call_id]
      CSeq: 1 INVITE
      Contact: <sip:test@192.168.1.62:[local_port]>
      Max-Forwards: 70
      Subject: SIPp Test
      Content-Type: application/sdp
      Content-Length: [len]
      v=0
      o=user1 53655765 2353687637 IN IP[local_ip_type] 192.168.1.62
      s=-
      c=IN IP4 192.168.1.62
      t=0 0
      m=audio 6000 RTP/AVP 0
      a=rtpmap:0 PCMU/8000
    ]]>
  </send>
  <recv response="200" rtd="true"/>
  <send request="ACK"/>
</scenario>

启动命令:

sipp -sf uac_scenario.xml 192.168.1.63:5060 -i 192.168.1.62 -m 1

6. 终止测试

  • Ctrl+C 终止SIPp进程。
  • 检查统计信息:
    Total call time: 1.000s
    Successful calls: 1
    Failed calls: 0
    

常见问题排查

  1. 无响应:检查防火墙/端口是否开放,IP地址是否拼写正确。
  2. 响应超时:增加UAC超时时间(-timeout 10)。
  3. SIP错误码:根据日志调整场景文件(如401需处理鉴权)。

通过以上步骤,您可以在两台服务器间模拟完整的SIP呼叫流程。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐