Asterisk 即时消息错误

Asterisk Instant Messaging Errors

我试图在 asterisk 服务器中设置即时消息。对于客户,我正在使用 Blink Softphone。我确实添加到我的 sip.conf

[general]
accept_outofcall_message=yes
outofcall_message_context=dialplan_name
auth_message_requests=yes

还有我的extensions.conf

[dialplan_name]
exten => _XXX,1,MessageSend(sip:${EXTEN},"${CALLERID(name)}"${MESSAGE(from)})

所以这是一个简单的测试扩展。但是当我尝试将消息从 user1 发送到 user2 时,我进入了星号日志:

[Jan 30 21:17:47] WARNING[6420][C-00000005]: chan_sip.c:10515 process_sdp: Insufficient information in SDP (c=)...

这里有什么问题吗?我确定客户在 nat 上,所以我确实为 sip.conf

中的所有用户提供了两个 nat=force_rport,comedia

我的星号版本是 13(最新)。

[更新] 我打开了 sip 调试日志,并尝试发送消息(首先我收到一些奇怪的重传):

Retransmitting #9 (no NAT) to 14.228.14.150:5070:   <- weird ip here
SIP/2.0 401 Unauthorized
Via: SIP/2.0/UDP 14.228.14.150:5070;branch=z9hA4cA-abcdef613aca8b1x3124abb0z3e1bc8;received=14.228.14.150;rport=5070
From: 2014<sip:2014@(server_ip_here)>;tag=a312facc
To: 0009735466221178<sip:0009735466221178@(server_ip_here)>;tag=bb62441233
Call-ID: abcdef613aca8b1x3124abb0z3e1bc8
CSeq: 1 INVITE
Server: Asterisk PBX 13.1.0
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH, MESSAGE
Supported: replaces, timer
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="2222abcf"
Content-Length: 0

然后

<--- SIP read from TLS:(my_ip_here):49312 --->
INVITE sip:123@(server_ip_here) SIP/2.0
Via: SIP/2.0/TLS (my_ip_here):49312;rport;branch=b4ae88b115be15a5n9244;alias
Max-Forwards: 70
From: "user1" <sip:user1@server_ip_here>;tag=39e388fd5f616b7
To: <sip:123@(server_ip_here)>
Contact: <sip:12313560@(server_ip_here):49311;transport=tls>
Call-ID: ac48128192za12a2f432e24c18aabc7q
CSeq: 28982 INVITE
Allow: SUBSCRIBE, NOTIFY, PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, MESSAGE, REFER
Supported: 100rel, replaces, norefersub, gruu
User-Agent: Blink 0.9.1.2 (Windows)
Content-Type: application/sdp
Content-Length: 308

v=0
o=- 3211422221 3211422221 IN IP4 (my_ip)
s=Blink 0.9.1.2 (Windows)
t=0 0
m=message 2855 TCP/TLS/MSRP *
c=IN IP4 (my_ip)
a=path:msrps://(my_ip):2855/37a1cc82ab315e21b222;tcp
a=accept-types:message/cpim text/* application/im-iscomposing+xml
a=accept-wrapped-types:*
a=setup:active
<------------->
--- (13 headers 10 lines) ---
Sending to (my_ip):49312 (NAT)
Sending to (my_ip):49312 (NAT)
Using INVITE request as basis request - ad72cd1681aff769721af12c21aaea7c
Found peer 'user1' for 'user1' from (my_ip):49312
  == Using SIP VIDEO CoS mark 6
  == Using SIP RTP CoS mark 5
[Jan 31 21:02:17] WARNING[27265][C-00000118]: chan_sip.c:10515 process_sdp: Insufficient information in SDP (c=)...

arheops 是对的! Using INVITE request as basis request <- 在这里。由于某种原因,使用了 INVITE 请求而不是 MESSAGE。

看起来您的软件电话使用 INVITE 而不是 MESSAGE 来发送消息。

您可以通过在 asterisk 控制台中启用 sip 调试来获取更多信息

asterisk -r
sip set debug on