kamailio6.0和SIPp及vos3000测通的代码

SIPp的代码


<scenario name="Basic Call">
    <send>
      
      From: ;tag=client
      Call-ID: 12345
      CSeq: 1 INVITE
      Max-Forwards: 70
      Content-Length: 0
      Via: SIP/2.0/UDP 192.168.1.62:5060;branch=z9hG4bK-12345
      ]]>
    send>
    <recv response="180">
      
    recv>
    <recv response="200">
      
    recv>
    <send>
      ;tag=client
      From: ;tag=client
      Call-ID: 12345
      CSeq: 1 ACK
      Via: SIP/2.0/UDP 192.168.1.62:5060;branch=z9hG4bK-12345
      ]]>
    send>
    <send>
      
      From: ;tag=client
      Call-ID: 12345
      CSeq: 2 BYE
      Via: SIP/2.0/UDP 192.168.1.62:5060;branch=z9hG4bK-12345
      ]]>
    send>
    <recv response="200">
      
    recv>
scenario>

SIPp执行的代码

sipp -sf ./usc.xml -i 192.168.1.62 -p 5060 192.168.1.70:5060 -trace_msg -trace_err

kamailio.cfg文件的内容

#!KAMAILIO

####### Global Parameters #########
debug=3  # 开启最高级别调试
log_stderror=yes  # 输出日志到控制台

children=4  # 测试环境减少子进程数量
memdbg=5
memlog=5

listen=udp:192.168.1.70:5060  # 指定监听IP和端口

####### Modules Section ########
loadmodule "tm.so"
loadmodule "sl.so"
loadmodule "rr.so"
loadmodule "maxfwd.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "textops.so"
loadmodule "siputils.so"
loadmodule "xlog.so"
loadmodule "ctl.so"
loadmodule "pv.so"
# 基础模块参数配置
modparam("usrloc", "db_mode", 0)  # 使用内存存储位置信息
modparam("registrar", "method_filtering", 0)  # 关闭方法过滤

####### Routing Logic ########
request_route {
    # 基础检查
    if (!mf_process_maxfwd_header("10")) {
        sl_send_reply("483", "Too Many Hops");
        exit;
    }

    # 识别测试流量
    if ($si == "192.168.1.62") {  # SIPp客户端
        $var(test_call) = 1;
    }

    # 处理注册请求
    if (is_method("REGISTER")) {
        if (!save("location")) {
            sl_reply_error();
        }
        exit;
    }

    # 测试呼叫路由逻辑
    if ($var(test_call) == 1 && is_method("INVITE")) {
        xlog("Received test call from SIPp\n");
        
        # 强制改写目标地址
        rewritehostport("192.168.1.67:5060");  # 目标服务器
        
        # 添加Record-Route头
        record_route();
        
        # 转发请求
        if (!t_relay()) {
            sl_reply_error();
        }
        exit;
    }

    # 默认拒绝其他流量
    sl_send_reply("403", "Forbidden");
}

SIPp模仿VOS的代码


<scenario name="Enhanced Call">
    <send>
      
      From: ;tag=client
      Call-ID: 12345
      CSeq: 1 INVITE
      Max-Forwards: 70
      Content-Length: 340
      Via: SIP/2.0/UDP 192.168.1.62:5060;branch=z9hG4bK-12345
      Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
      Supported: replaces, 100rel, timer, norefersub
      Session-Expires: 1800
      Min-SE: 90
      User-Agent: MicroSIP/3.21.5
      Contact: 
      Content-Type: application/sdp
      
      v=0
      o=- 3948201865 3948201865 IN IP4 192.168.1.62
      s=pjmedia
      b=AS:84
      t=0 0
      a=X-nat:0
      m=audio 4000 RTP/AVP 8 0 101
      c=IN IP4 192.168.1.62
      b=TIAS:64000
      a=rtcp:4001 IN IP4 192.168.1.62
      a=sendrecv
      a=rtpmap:8 PCMA/8000
      a=rtpmap:0 PCMU/8000
      a=rtpmap:101 telephone-event/8000
      a=fmtp:101 0-16
      a=ssrc:1047352934 cname:2d706f9a084b4b9e
      ]]>
    send>
    <recv response="180">
      
    recv>
    <recv response="200">
      
    recv>
    <send>
      ;tag=client
      From: ;tag=client
      Call-ID: 12345
      CSeq: 1 ACK
      Via: SIP/2.0/UDP 192.168.1.62:5060;branch=z9hG4bK-12345
      ]]>
    send>
    <send>
      

    
      
      From: ;tag=client
      Call-ID: 12345
      CSeq: 1 INVITE
      Max-Forwards: 70
      Content-Length: 340
      Via: SIP/2.0/UDP 192.168.1.62:5060;branch=z9hG4bK-12345
      Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS
      Supported: replaces, 100rel, timer, norefersub
      Session-Expires: 1800
      Min-SE: 90
      User-Agent: MicroSIP/3.21.5
      Contact: 
      Content-Type: application/sdp
      
      v=0
      o=- 3948201865 3948201865 IN IP4 192.168.1.62
      s=pjmedia
      b=AS:84
      t=0 0
      a=X-nat:0
      m=audio 4000 RTP/AVP 8 0 101
      c=IN IP4 192.168.1.62
      b=TIAS:64000
      a=rtcp:4001 IN IP4 192.168.1.62
      a=sendrecv
      a=rtpmap:8 PCMA/8000
      a=rtpmap:0 PCMU/8000
      a=rtpmap:101 telephone-event/8000
      a=fmtp:101 0-16
      a=ssrc:1047352934 cname:2d706f9a084b4b9e
      ]]>
    send>
    <recv response="180">
      
    recv>
    <recv response="200">
      
    recv>
    <send>
      ;tag=client
      From: ;tag=client
      Call-ID: 12345
      CSeq: 1 ACK
      Via: SIP/2.0/UDP 192.168.1.62:5060;branch=z9hG4bK-12345
      ]]>
    send>
    <send>
      
      From: ;tag=client
      Call-ID: 12345
      CSeq: 2 BYE
      Via: SIP/2.0/UDP 192.168.1.62:5060;branch=z9hG4bK-12345
      ]]>
    send>
    <recv response="200">
      
    recv>
scenario>

@192.168.1.70 SIP/2.0
      To: <sip:[email protected]>
      From: <sip:[email protected]>;tag=client
      Call-ID: 12345
      CSeq: 2 BYE
      Via: SIP/2.0/UDP 192.168.1.62:5060;branch=z9hG4bK-12345
      ]]>
    send>
    <recv response="200">
      
    recv>
scenario>


你可能感兴趣的:(VOIP那些事,kamailio)