Asterisk 星号返回501-未实现信息包

Asterisk 星号返回501-未实现信息包,asterisk,sip,sipp,Asterisk,Sip,Sipp,我正试图通过SIPp发送DTMFs。由于play_pcap_audio操作不是100%可靠的,我想构造SIP INFO消息以使我的测试更加健壮,但是当我发送信息包时,我从Asterisk得到501-未实现的响应 如果我将我的软电话设置为使用SIP INFO来发送DTMFs,那么效果很好,因此我假设这与我发送的消息有关。然而,比较实际信息并没有发现任何差异 我发出的邀请: INVITE sip:*203@192.168.200.208:5060 SIP/2.0 Via: SIP/2.0/UDP 1

我正试图通过SIPp发送DTMFs。由于play_pcap_audio操作不是100%可靠的,我想构造SIP INFO消息以使我的测试更加健壮,但是当我发送信息包时,我从Asterisk得到501-未实现的响应

如果我将我的软电话设置为使用SIP INFO来发送DTMFs,那么效果很好,因此我假设这与我发送的消息有关。然而,比较实际信息并没有发现任何差异

我发出的邀请:

INVITE sip:*203@192.168.200.208:5060 SIP/2.0
Via: SIP/2.0/UDP 172.17.0.2:5060;branch=z9hG4bK-234-1-7;rport
From: sipp <sip:2018005@192.168.200.208>;tag=1
To: <sip:*203@192.168.200.208:5060>
Call-ID: 1-234@172.17.0.2
CSeq: 4 INVITE
Contact: sip:2018005@172.17.0.2:5060
Authorization: //auth header omitted
Max-Forwards: 70
Allow: OPTIONS, SUBSCRIBE, NOTIFY, INVITE, ACK, CANCEL, BYE, REFER, INFO
Content-Type: application/sdp
Content-Length:   195

v=0
o=user1 53655765 2353687637 IN IP4 172.17.0.2
s=-
c=IN IP4 172.17.0.2
t=0 0
m=audio 8192 RTP/AVP 0
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
INVITE sip:*203@192.168.200.208:5060 SIP/2.0
Via:SIP/2.0/UDP 172.17.0.2:5060;分支=z9hG4bK-234-1-7;港口
发件人:sipp;标签=1
致:
电话号码:1-234@172.17.0.2
CSeq:4邀请
联系人:sip:2018005@172.17.0.2:5060
Authorization://auth头省略
最大前锋:70
允许:选项、订阅、通知、邀请、确认、取消、再见、参考、信息
内容类型:应用程序/sdp
内容长度:195
v=0
o=IP4172.17.0.2中的用户1 53655765 2353687637
=-
c=在IP4 172.17.0.2中
t=0
m=音频8192 RTP/AVP 0
a=rtpmap:8 PCMA/8000
a=rtpmap:101电话事件/8000
a=fmtp:101 0-15
a=sendrecv
信息信息:


INFO sip:192.168.200.208:5060 SIP/2.0
Via: SIP/2.0/UDP 172.17.0.2:5060;branch=z9hG4bK-234-1-16
Max-Forwards: 70
Contact: <sip:2018005@172.17.0.2:5060;transport=UDP>
To: <sip:*203@192.168.200.208:5060>
From: "sipp" <sip:2018005@192.168.200.208>;tag=1
Call-ID: 1-234@172.17.0.2
CSeq: 5 INFO
User-Agent: SIPp docker
Authorization: // auth header omitted
Content-Length: 22

Signal=1
Duration=160

信息sip:192.168.200.208:5060 sip/2.0
Via:SIP/2.0/UDP 172.17.0.2:5060;分支=z9hG4bK-234-1-16
最大前锋:70
联系人:
致:
来自:“sipp”;标签=1
电话号码:1-234@172.17.0.2
CSeq:5信息
用户代理:SIPp docker
Authorization://auth头省略
内容长度:22
信号=1
持续时间=160
我已经确定这与星号中的
dtmfmode
配置无关。 我注意到的一件事是,当星号响应INVITE时,它包含以下标题:
Allow:OPTIONS、REGISTER、SUBSCRIBE、NOTIFY、PUBLISH、INVITE、ACK、BYE、CANCEL、UPDATE、PRACK、MESSAGE、reference
我希望信息会在这里,但再次强调,使用软电话时也是一样的,而且一切正常。 还有哪些方面会影响SIP信息的处理


任何关于进一步调试的帮助都将不胜感激。

结果是SIP对话框有问题

标签(+呼叫id)标识一个对话框。发送邀请后,UAS以OK响应,将远程标记粘贴到to:字段。每个后续请求都必须使用相同的标记(本地和远程+调用id)来引用相同的对话框。在使用SIPp场景时,可通过将[last_To::::粘贴到标题中来实现,以便获得正确的远程标记:

 <send>
        <![CDATA[
            ACK sip:[field3]@[remote_ip]:[remote_port] SIP/2.0
            Via: SIP/2.0/[transport] [local_ip]:[local_port];branch=[branch]
            From: <sip:[field0]@[field1]>;tag=[call_number]
            [last_To:]
            Call-ID: [call_id]
            CSeq: [cseq] ACK
            Contact: sip:[field0]@[local_ip]:[local_port]
            Max-Forwards: 10
            Content-Length: 0
        ]]>
    </send>

;标签=[呼叫号码]
[最后至:]
呼叫ID:[呼叫ID]
CSeq:[CSeq]确认
联系人:sip:[field0]@[local_ip]:[local_port]
最大前锋数:10
内容长度:0
]]>
在上述情况下,从UAC发回ACK并建立对话框。现在,当我们发送信息时,我们必须参考同一个对话框(通过设置正确的标记),所有这些都可以正常工作。 有趣的是,当没有正确设置这些值时,pjsip给出了501未实现,而chan_sip响应481调用/事务不存在,这更准确