Webrtc 星号SendMessage未发送到WS

Webrtc 星号SendMessage未发送到WS,webrtc,asterisk,sip,Webrtc,Asterisk,Sip,我正在使用SipJS lib和Asterisk 11.16作为后端,通过WebRTC实现软电话和聊天。呼叫功能运行良好,但当我使用SendMessage向基于WebRTC的对等方发送即时消息时,Asterisk正在从URI的域部分向IP上的端口5060发送SIP数据包。如果我将服务器域放在URI中,我将在服务器上接收和重新发送相同的消息,因为Asterisk没有使用WS发送传出消息,而是使用默认SIP。据我所知,SendMessage应用程序只是忽略当前SIP对等方信息,只查看uri,当拨号按预

我正在使用SipJS lib和Asterisk 11.16作为后端,通过WebRTC实现软电话和聊天。呼叫功能运行良好,但当我使用SendMessage向基于WebRTC的对等方发送即时消息时,Asterisk正在从URI的域部分向IP上的端口5060发送SIP数据包。如果我将服务器域放在URI中,我将在服务器上接收和重新发送相同的消息,因为Asterisk没有使用WS发送传出消息,而是使用默认SIP。据我所知,SendMessage应用程序只是忽略当前SIP对等方信息,只查看uri,当拨号按预期工作时,通过WS。我还注意到,在sip.conf中,选项auth_message_requests应该设置为no,以使消息进入循环,否则在第一次迭代后,它将被401代码拒绝,如下面的示例所示(从WS-transport的初始接收已被指定,XX.XX.XX.XX是myasterisk.server.org的IP)。 是否有任何选项可以强制SendMessage使用对等详细信息和WS-transport by-config更改,或者在已经实现的地方使用更新版本的asterisk

    <------------>
        -- Executing [921@messages:2] NoOp("Message/ast_msg_queue", "To sip:921@myasterisk.server.org") in new stack
        -- Executing [921@messages:3] NoOp("Message/ast_msg_queue", "From "Golovchenko, Dmytro" <sip:920@myasterisk.server.org>") in new stack
        -- Executing [921@messages:4] NoOp("Message/ast_msg_queue", "Body test") in new stack
        -- Executing [921@messages:5] MessageSend("Message/ast_msg_queue", "sip:921@myasterisk.server.org,"Golovchenko, Dmytro" <sip:920@myasterisk.server.org>") in new stack
    Scheduling destruction of SIP dialog '4vg0rleqn8e2g32ct8pb' in 32000 ms (Method: MESSAGE)
    Reliably Transmitting (no NAT) to XX.XX.XX.XX:5060:
    MESSAGE sip:921@myasterisk.server.org SIP/2.0
    Via: SIP/2.0/UDP XX.XX.XX.XX:5060;branch=z9hG4bK535a7bae
    Max-Forwards: 70
    From: "Golovchenko, Dmytro" <sip:920@myasterisk.server.org>;tag=as112b7351
    To: <sip:921@myasterisk.server.org>
    Contact: <sip:920@XX.XX.XX.XX:5060>
    Call-ID: 462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060
    CSeq: 102 MESSAGE
    User-Agent: Asterisk PBX 11.16.0
    Content-Type: text/plain;charset=UTF-8
    Content-Length: 4

    test
    ---
    Scheduling destruction of SIP dialog '462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060' in 32000 ms (Method: MESSAGE)
        -- Executing [921@messages:6] NoOp("Message/ast_msg_queue", "Send status is SUCCESS") in new stack
        -- Executing [921@messages:7] GotoIf("Message/ast_msg_queue", "0?sendfailedmsg") in new stack
        -- Executing [921@messages:8] Hangup("Message/ast_msg_queue", "") in new stack
      == Spawn extension (messages, 921, 8) exited non-zero on 'Message/ast_msg_queue'

    <--- SIP read from UDP:XX.XX.XX.XX:5060 --->
    MESSAGE sip:921@myasterisk.server.org SIP/2.0
    Via: SIP/2.0/UDP XX.XX.XX.XX:5060;branch=z9hG4bK535a7bae
    Max-Forwards: 70
    From: "Golovchenko, Dmytro" <sip:920@myasterisk.server.org>;tag=as112b7351
    To: <sip:921@myasterisk.server.org>
    Contact: <sip:920@XX.XX.XX.XX:5060>
    Call-ID: 462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060
    CSeq: 102 MESSAGE
    User-Agent: Asterisk PBX 11.16.0
    Content-Type: text/plain;charset=UTF-8
    Content-Length: 4

    test
    <------------->
    --- (11 headers 1 lines) ---
    Sending to XX.XX.XX.XX:5060 (no NAT)
    Receiving message!
    Found peer '920' for '920' from XX.XX.XX.XX:5060

    <--- Transmitting (NAT) to XX.XX.XX.XX:5060 --->
    SIP/2.0 401 Unauthorized
    Via: SIP/2.0/UDP XX.XX.XX.XX:5060;branch=z9hG4bK535a7bae;received=XX.XX.XX.XX;rport=5060
    From: "Golovchenko, Dmytro" <sip:920@myasterisk.server.org>;tag=as112b7351
    To: <sip:921@myasterisk.server.org>;tag=as1b701310
    Call-ID: 462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060
    CSeq: 102 MESSAGE
    Server: Asterisk PBX 11.16.0
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
    Supported: replaces, timer
    WWW-Authenticate: Digest algorithm=MD5, realm="XX.XX.XX.XX", nonce="028de78a"
    Content-Length: 0


    <------------>
    Scheduling destruction of SIP dialog '462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060' in 32000 ms (Method: MESSAGE)
    Scheduling destruction of SIP dialog '462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060' in 32000 ms (Method: MESSAGE)

    <--- SIP read from UDP:XX.XX.XX.XX:5060 --->
    SIP/2.0 401 Unauthorized
    Via: SIP/2.0/UDP XX.XX.XX.XX:5060;branch=z9hG4bK535a7bae;received=XX.XX.XX.XX;rport=5060
    From: "Golovchenko, Dmytro" <sip:920@myasterisk.server.org>;tag=as112b7351
    To: <sip:921@myasterisk.server.org>;tag=as1b701310
    Call-ID: 462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060
    CSeq: 102 MESSAGE
    Server: Asterisk PBX 11.16.0
    Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
    Supported: replaces, timer
    WWW-Authenticate: Digest algorithm=MD5, realm="XX.XX.XX.XX", nonce="028de78a"
    Content-Length: 0

    <------------->
    --- (11 headers 0 lines) ---
    Really destroying SIP dialog '462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060' Method: MESSAGE

--执行[921@messages:2]NoOp(“消息/消息队列”,“到sip:921@myasterisk.server.org)在新堆栈中
--执行[921@messages:3]新堆栈中的NoOp(“Message/ast_msg_queue”,“From”Golovchenko,Dmytro“)
--执行[921@messages:4]新堆栈中的NoOp(“消息/ast\u消息队列”,“正文测试”)
--执行[921@messages:5]MessageSend(“消息/ast\u消息队列”,“sip:921@myasterisk.server.org,“Golovchenko,Dmytro”)在新堆栈中
计划在32000毫秒内销毁SIP对话框“4vg0rleqn8e2g32ct8pb”(方法:消息)
向XX.XX.XX.XX:5060可靠传输(无NAT):
消息sip:921@myasterisk.server.orgSIP/2.0
Via:SIP/2.0/UDP XX.XX.XX.XX:5060;分支=z9hG4bK535a7bae
最大前锋:70
摘自:“Golovchenko,Dmytro”;标签=as112b7351
致:
联系人:
呼叫ID:462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060
CSeq:102消息
用户代理:Asterisk PBX 11.16.0
内容类型:文本/纯文本;字符集=UTF-8
内容长度:4
测试
---
SIP对话框的销毁调度462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.132000毫秒时为:5060英寸(方法:消息)
--执行[921@messages:6]新堆栈中的NoOp(“消息/ast\u消息队列”,“发送状态为成功”)
--执行[921@messages:7]新堆栈中的GotoIf(“消息/ast\u消息队列”,“0?sendfailedmsg”)
--执行[921@messages:8]在新堆栈中挂起(“消息/ast\u消息队列”,“”)
==在“Message/ast_msg_queue”上,生成扩展(messages,921,8)退出非零
消息sip:921@myasterisk.server.orgSIP/2.0
Via:SIP/2.0/UDP XX.XX.XX.XX:5060;分支=z9hG4bK535a7bae
最大前锋:70
摘自:“Golovchenko,Dmytro”;标签=as112b7351
致:
联系人:
呼叫ID:462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060
CSeq:102消息
用户代理:Asterisk PBX 11.16.0
内容类型:文本/纯文本;字符集=UTF-8
内容长度:4
测试
---(11个标题1行)---
发送至XX.XX.XX.XX:5060(无NAT)
收到消息!
从XX.XX.XX.XX:5060找到“920”的对等方“920”
SIP/2.0 401未经授权
Via:SIP/2.0/UDP XX.XX.XX.XX:5060;分支=z9hG4bK535a7bae;已接收=XX.XX.XX.XX;rport=5060
摘自:“Golovchenko,Dmytro”;标签=as112b7351
致:;标签=as1b701310
呼叫ID:462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060
CSeq:102消息
服务器:星号PBX 11.16.0
允许:邀请、确认、取消、选项、再见、参考、订阅、通知、信息、发布、消息
支持:替换、定时器
WWW-Authenticate:Digest algorithm=MD5,realm=“XX.XX.XX.XX”,nonce=“028de78a”
内容长度:0
SIP对话框的销毁调度462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.132000毫秒时为:5060英寸(方法:消息)
SIP对话框的销毁调度462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.132000毫秒时为:5060英寸(方法:消息)
SIP/2.0 401未经授权
Via:SIP/2.0/UDP XX.XX.XX.XX:5060;分支=z9hG4bK535a7bae;已接收=XX.XX.XX.XX;rport=5060
摘自:“Golovchenko,Dmytro”;标签=as112b7351
致:;标签=as1b701310
呼叫ID:462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060
CSeq:102消息
服务器:星号PBX 11.16.0
允许:邀请、确认、取消、选项、再见、参考、订阅、通知、信息、发布、消息
支持:替换、定时器
WWW-Authenticate:Digest algorithm=MD5,realm=“XX.XX.XX.XX”,nonce=“028de78a”
内容长度:0
---(11个标题0行)---
真的在破坏SIP对话'462a6a3d38c2a72b22c70ba04622a1ce@127.0.1.1:5060'方法:消息

WebRTC是一项非常新的技术。您应该能够阅读源代码来处理它。不认为有任何实现您想要的功能。在寻找相关信息时,我在Asterisk中找到了两张罚单:续:它们很旧(8月14日),但目标是Asterisk 12.5.0,我对Asterisk源代码还不太了解,无法立即回答它们是否能解决我的问题。看起来我需要测试最新的第12和第13版Asterisk,以检查SendMessage是否以与Dial相同的方式处理对等信息,更重要的是它是否能够将SIP通信封装到WS/WSS传输。同时,。12和13使用pjsip代替sip与WebRTC协同工作,如果实现了相同的逻辑,但与使用其他传输UDP、TCP等的sip客户端协同工作,则需要对配置进行重大更改,以获得等效的配置。spicyramen,当我将收件人id设置为921@myasterisk.server.org而在没有授权的情况下启用消息传递,则表明具有静态IP和开放端口5060的常规SIP客户端将获得消息。我的星号是这样的客户工作没有问题。但我会的